Ephemeral Instrumentation for Lightweight Program Profiling
نویسندگان
چکیده
Program profiling is a mechanism that is useful for performance evaluation and code optimization. Profiling techniques that provide detailed information with extremely low overhead are especially important for systems that continuously monitor or dynamically optimize running executables. In this paper, we describe an approach for program profiling called ephemeral instrumentation and show that it collects useful profiles with low overhead. This approach builds on ideas from both program instrumentation and statistical sampling; it produces binaries that are able to periodically record aspects of their executions in great detail. It works because program behavior is predictable and because we are able to convert ephemeral profiles into traditional formats. This paper describes an ephemeral instrumentation system for gathering branch biases and post-processing that data into a traditional edge profile. We evaluate the usefulness of such profiles by using them to drive a superblock scheduler. Our experimental results show that we can gather ephemeral profiles with extremely low overheads (1-5%) while acquiring profile data that rivals the usefulness of complete profiles gathered at much higher overheads.
منابع مشابه
iProbe: A Lightweight User-Level Dynamic Instrumentation Framework
Application tracing in production systems requires dynamic and flexible instrumentation mechanisms with lowoverhead. Tracing tools may be required to be started at anytime, and it can take potentially long time periods to collect enough information, but at the same time should not adversely affect service quality. Existing user-space code monitoring solutions are either inflexible developer-dri...
متن کاملWOWMON: A Machine Learning-based Profiler for Self-adaptive Instrumentation of Scientific Workflows
Performance debugging using program profiling and tracing for scientific workflows can be extremely difficult for two reasons. 1) Existing performance tools lack the ability to automatically produce global performance data based on local information from coupled scientific applications of workflows, particularly at runtime. 2) Profiling/tracing with static instrumentation may incur high overhea...
متن کاملPerfrewrite - Program Complexity Analysis via Source Code Instrumentation
Most program profiling methods output the execution time of one specific program execution, but not its computational complexity class in terms of the big-O notation. Perfrewrite is a tool based on LLVM’s Clang compiler to rewrite a program such that it tracks semantic information while the program executes and uses it to guessmemory usage, communication and computational complexity. While sour...
متن کاملLoop Level Analysis of Security and Network Applications
-It has been known that loops constitute the most executed segments of programs and therefore are the best candidates for hardware implementation. We present a set of profiling tools that are specifically dedicated to loop profiling and do support combined function and loop profiling. One tool relies on an instruction set simulator and can therefore be augmented with architecture and micro-arch...
متن کاملIncremental call-path profiling
Call-path profiling attributes execution cost to the path taken to reach a function. Previous call-path profilers tracked the call-path at all times, which requires instrumentation of the entire program. Since this instrumentation was frequently executed, they were restricted to calculating simple metrics, such as function call counts. We present a new method for call-path profiling called incr...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1997